package state.source;

/**
 * 状态模式：
 * 解决当控制一个对象状态转换的条件表达式过于复杂的情况。
 * 把状态的判断逻辑转移到表示不同状态的一系列类当中，可以简化复杂的逻辑判断，减少依赖
 *
 * 当一个对象的行为取决于它的状态，并且它必须在运行时刻根据状态改变它的行为时可以考虑使用state模式
 * 通过将特定的状态相关的行为都放入一个对象中，由于所有与状态相关的代码都存在于某个ConcreteState中
 * 所以通过定义新的子类可以很容易地增加新的状态和转换，目的是为了消除庞大的分支语句
 * @author Chen Guang
 * @date 2019/4/16 0016 上午 9:58
 */
public interface State {
    void handle(Context context);
}
